3
תגובות

בעיה ב mysqli

פתח hexdec ,
אני מנסה להתחיל להשתמש ב mysqli ויש לי קוד כזה ב index:
<?php
include 'lib/Sql.class.php';
include 'lib/Members.class.php';
include 'lib/Upload.class.php';

$members = new Members();
$upload = new Upload("uploads");

$members->justtest();
?>

(עזבו את justtest וכל השאר).
ב Sql.class.php יש לי את זה:
<?php
class Sql extends mysqli {
    private $connected = false;
   
    public function __construct($host, $user, $pass, $db, $charset) {
        parent::__construct($host, $user, $pass, $db);
        if ($this->connect_error)
            die('Connection Error: '.$this->connect_error);
        $this->set_charset($charset);
        $this->connected = true;
    }
   
    public function query($query, $resultmode = MYSQLI_STORE_RESULT) {
        $res = parent::query($query, $resultmode);
        if ($res == false) die('SQL Error: '.$this->error);
        return $res;
    }
   
    function __destruct() {
        if ($this->connected) $this->close();
    }
}

$mysqli = new Sql('localhost', 'root', '', 'imageupload', 'utf8');
?>


וב Members.class.php יש לי את זה:
<?php
class Members extends mysqli {
    public function add_member($username, $password) {
       
    }
   
    public function justtest() {
        if ($result = $this->query('SELECT NOW()')) {
            echo 'Mysql returned '.$result->num_rows.' row with '.$result->field_count.' field';
        }
    }
}

?>

אני בעצם מנסה לעשות את המתודה justtest, אבל מופעיה לי השגיאה הבאה:
Warning: mysqli::query() [mysqli.query]: invalid object or resource Members in C:\wamp\www\imageupload\lib\Members.class.php on line 8

אם אני מנסה למעלה לעשות extends ל Sql ולא ל mysqli בכלל כל הדף שגיאות.
אין לי שום בעיה בחיבור או משהו, מכוון שאם אני לא קורא למתודה אין שום שגיאה.

תודה!

3 תשובות

avatar ענה intval ב 13 לפברואר 2012 #

תעשה טבלת מעקב ותגיע למסקנה שאף אחד אף פעם לא פתח חיבור למסד במחלקה Members

avatar ענה hexdec ב 13 לפברואר 2012 #

אז מה לעשות? אם אני אעשה extends ל Sql אז בגלל יהיו לי שגיאות..
מה אני אמור לעשות?

avatar ענה משתמש_110317 ב 13 לפברואר 2012 #

לחשוב ואז לעשות ככה שיהיה חיבור למסד לפני שאתה מפעיל את פונקציה query.